package com.yiruantong.wechat.domain;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.List;

/**
 * 发送/撤回接口的参数
 *
 * @author 3y
 */
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class SendRequest {

  /**
   * 执行业务类型
   * <p>
   * send:发送消息
   * recall:撤回消息
   */
  private String code;

  /**
   * 消息模板Id
   * 【必填】
   */
  private Long messageTemplateId;


  /**
   * 消息相关的参数
   * 当业务类型为"send"，必传
   */
  private MessageParam messageParam;

  /**
   * 需要撤回的消息messageIds (可根据发送接口返回的消息messageId进行撤回)
   * 【可选】
   */
  private List<String> recallMessageIds;

}
